Distributed cache system for optical networks

ABSTRACT

Caching techniques are described. An example network device positioned between an optical line terminal (OLT) and a service provider device includes a hot cache, a wide cache controller, and a control unit. The control unit is configured to receive, from a first service delivery platform, a request for digital content, and determine whether the requested digital content is stored on the hot cache. The control unit is further configured to, when the requested digital content is not stored on the hot cache, determine, using the wide cache controller, whether the requested digital content is stored on a wide cache of a second service delivery platform, receive, from the second service delivery platform, the requested digital content, and responsive to the request received from the first delivery platform, send the received digital content to the first delivery platform.

This application is a continuation of U.S. patent application Ser. No.13/585,147, filed on 14 Aug. 2012, the contents of which areincorporated by reference in their entirety.

TECHNICAL FIELD

The present disclosure generally relates to a caching system that may bedeployed in optical networks.

BACKGROUND

An end-user of a network may request various types of data, such asdigital video content, using the network. For example, the end-user (or“subscriber”) may submit a request using a subscriber device (e.g., acomputer, television set-top box, etc.) that is connected or otherwisecoupled to a service delivery platform. In the context of opticalnetworks and other network architectures that include optical networkelements, examples of service delivery platforms include optical networkunits (ONUs) and/or optical network terminals (ONTs). In response toreceiving a digital content request from a subscriber device, theservice delivery platform may forward the request for the digitalcontent over the network. In turn, the service delivery platform mayreceive the requested digital content, and distribute the digitalcontent to the respective subscriber device(s) that sent the originalrequest.

SUMMARY

In accordance with one or more techniques of this disclosure, eachservice delivery platform for each end user may implement a transparentcaching scheme in populating its respective wide cache with digitalcontent. As a result, different service delivery platforms may storevarying digital content on their respective wide caches, based on thespecific requests received from corresponding downstream customerpremises equipment (CPE) of the end user.

Additionally, the techniques may provide for the use of a cache,sometimes referred to as a “hot cache,” implemented on an optical lineterminal (OLT) or a device positioned upstream of the OLT, such as aserver or router positioned in the service provider network. Similar tothe various wide caches, the device equipped with the hot cache mayimplement a transparent caching scheme. In turn, the hot cache may storedigital content that is most frequently requested over an entirety ofthe PON, as the hot cache monitors content requested by all servicedelivery platforms of the PON. Additionally, the hot cache may storereferences, such as pointers, to digital content stored on each widecache of the various service delivery platforms.

In accordance with one or more aspects of this disclosure, the hot cacheand the various wide caches may function in a distributed, cooperativemanner. For example, if a particular service delivery platform receivesa request for certain digital content, the service delivery platform maycheck whether the requested content is stored to its own wide cache. Ifthe content is not available from the service delivery platform's ownwide cache, the service delivery platform transmits the request to theupstream network device equipped with the hot cache. In response to therequest, the upstream network device may determine whether the requestedcontent is available in the hot cache. If available, the upstreamnetwork device may transmit the requested content to the servicedelivery platform which transmitted the request.

If the requested content is not available from the hot cache, theupstream network device may determine whether the requested content isavailable on a wide cache of any other service delivery platform in thePON. If the upstream network device locates the requested content on thewide cache of another service delivery platform, the upstream networkdevice may request the content from the other service delivery platform,and transmit the content to the service delivery platform thattransmitted the original request for the content.

If the requested content is not found on any of the hot cache or thevarious wide caches, the upstream network device may forward the requestfarther upstream over the service provider network (e.g., to serviceprovider device). In this case, the service provider device transmitsthe requested content to the upstream network device, which thentransmits the requested content to the service delivery platform.Content obtained by the service delivery platform (and, in examples,forwarded to a subscriber) in this fashion is often referred to asover-the-top (or “OTT”) content.

After the requesting service delivery platform receives the requestedcontent from its wide cache, the hot cache, the wide cache of anotherservice delivery platform, or from the service provider device, theservice delivery platform forwards the requested content to therequesting customer premises equipment (CPE). In this way, techniques ofthis disclosure are directed to a distributed, cooperative cachingsystem that may enable faster, more efficient, and higher quality supplyof digital content requested by an end user.

In one example, a method includes receiving, by a network devicepositioned between an optical line terminal (OLT) and a service providerdevice, a request for digital content from a first service deliveryplatform, determining, by the network device, whether the requesteddigital content is stored on a hot cache of the network device, and,when the requested digital content is not stored on the hot cache,determining, by the network device, whether the requested digitalcontent is stored on a wide cache of a second service delivery platform.The method further includes sending, by the network device, when therequested digital content is stored on the wide cache of the secondservice delivery platform, a backup request for the requested digitalcontent to the second service delivery platform, receiving, by thenetwork device from the second service delivery platform, the requesteddigital content, and sending, by the network device, the received datato the first service delivery.

In another example, a network device positioned between an optical lineterminal (OLT) and a service provider device includes a hot cacheconfigured to store digital content, a wide cache controller configuredto store one or more references to digital content stored on a pluralityof service delivery platforms, and a control unit. The control unit isconfigured to receive, from a first service delivery platform, a requestfor digital content, and determine whether the requested digital contentis stored on the hot cache. The control unit is further configured to,when the requested digital content is not stored on the hot cache,determine, using the wide cache controller, whether the requesteddigital content is stored on a wide cache of a second service deliveryplatform, receive, from the second service delivery platform, therequested digital content, and responsive to the request received fromthe first delivery platform, send the received digital content to thefirst delivery platform.

In another example, a computer-readable storage device is encoded withinstructions that, when executed, cause one or more programmableprocessors of a network device to perform receive, a request for digitalcontent from a first service delivery platform communicatively coupledto the network device, determine whether the requested digital contentis stored on a hot cache of the network device, and when the requesteddigital content is not stored on the hot cache, determine, whether therequested digital content is stored on a wide cache of a second servicedelivery platform communicatively coupled to the network device. Theinstructions further cause the one or more programmable processors to,when the requested digital content is stored on the wide cache of thesecond service delivery platform, send a backup request for therequested digital content to the second service delivery platform,receive, from the second service delivery platform, the requesteddigital content, and send the received digital content to the firstservice delivery platform.

In another example, a network device includes means for receiving arequest for digital content from a first service delivery platform,determining, whether the requested digital content is stored on a hotcache of the network device, and, when the requested digital content isnot stored on the hot cache, determining whether the requested digitalcontent is stored on a wide cache of a second service delivery platform.The network device further includes means for sending, when therequested digital content is stored on the wide cache of the secondservice delivery platform, a backup request for the requested digitalcontent to the second service delivery platform, receiving, from thesecond service delivery platform, the requested digital content, andsending the received data to the first service delivery.

In another example, a method includes receiving, by a service deliveryplatform and from a subscriber device, a request that identifies digitalcontent, and responsive to receiving the request, determining whetherthe digital content is stored on a wide cache of the service deliveryplatform. The method further includes when the digital content is notstored on the wide cache, forwarding the received request to a networkdevice, receiving, from the network device, the requested digitalcontent, where the received digital content includes at least one of 1)digital content stored on a hot cache of the network device, and 2)digital content that is stored on another wide cache of another servicedelivery platform and that is sent from the another service deliveryplatform via the network device. The method further includes forwardingthe received digital content to the subscriber device.

In another example, a service delivery platform includes an opticalnetwork interface, a wide cache, and a control unit. The control unit isconfigured to receive, at the optical network interface and from anetwork device positioned between the service delivery platform and aservice provider device, a backup request that identifies digitalcontent, and to determine whether the identified digital content isstored on the wide cache. The control unit is further configured to,when the identified digital content is stored on the wide cache, sendthe identified digital content from the optical network interface to thenetwork device positioned between the service delivery platform and theservice provider device.

In another example, a service delivery platform includes means forreceiving from a subscriber device, a request that identifies digitalcontent, and responsive to receiving the request, determining whetherthe digital content is stored on a wide cache of the service deliveryplatform. The service delivery platform further includes means forforwarding, when the digital content is not stored on the wide cache,the received request to a network device, receiving, from the networkdevice, the requested digital content, where the received digitalcontent includes at least one of 1) digital content stored on a hotcache of the network device, and 2) digital content that is stored onanother wide cache of another service delivery platform and that is sentfrom the another service delivery platform via the network device. Theservice delivery platform further includes means for forwarding thereceived digital content to the subscriber device.

In another example, a computer readable storage device includesinstructions that, when executed, cause one or more programmableprocessors of a service delivery platform to receive from a subscriberdevice, a request that identifies digital content, and responsive toreceiving the request, determine whether the digital content is storedon a wide cache of the service delivery platform. The instructionsfurther cause the programmable processor(s) to forward, when the digitalcontent is not stored on the wide cache, the received request to anetwork device, receive, from the network device, the requested digitalcontent, where the received digital content includes at least one of 1)digital content stored on a hot cache of the network device, and 2)digital content that is stored on another wide cache of another servicedelivery platform and that is sent from the another service deliveryplatform via the network device. The instructions further cause theprogrammable processor(s) to forward the received digital content to thesubscriber device.

The techniques of this disclosure may provide certain potentialadvantages. As one example, the techniques may mitigate or preventcongestion of downstream data traffic (e.g. at areas linking an upstreamnetwork device to an OLT, areas linking an OLT to an optical splitter,etc.). As another example, digital content, such as video data, may beefficiently distributed across various devices and stages of an accessnetwork. In turn, the efficient distribution of the digital content mayreduce costs associated with repeatedly requesting the same digitalcontent from the service provider, and retransmitting the same digitalcontent from the service provider downstream to one or more servicedelivery platforms. As another example, the techniques may effectivelymove more frequently requested content closer to the subscriber (i.e.,reduce the logical distance between the storage location of the digitalcontent and CPE used by a subscriber). By moving this digital contentcloser to the subscriber, the techniques may mitigate content qualitydegradation associated with transmitting the data over greater logicaldistances. Moreover, by reducing the distance over which data travelsvia coaxial cables, the techniques may further mitigate qualitydegradation, which is a disadvantage associated with cable coaxialnetworks.

The details of one or more examples are set forth in the accompanyingdrawings and the description below. Other features, objects, andadvantages of this disclosure will be apparent from the description anddrawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram illustrating an example network system thatincludes a cooperative distributed caching system in accordance with oneor more techniques of this disclosure.

FIG. 2 is a block diagram illustrating details of an example servicedelivery platform, in accordance with one or more aspects of thisdisclosure.

FIG. 3 is a block diagram illustrating details of an example networkdevice, in accordance with one or more aspects of this disclosure.

FIG. 4 is a flowchart illustrating an example process by which anupstream network device and one or more service delivery platforms mayimplement one or more distributed caching techniques of this disclosure.

DETAILED DESCRIPTION

With increasing consumer demand for data usage, particularly for digitalvideo content, consumers may face issues related to scarcity ofavailable network bandwidth. In the context of a passive optical network(PON), scarcity of available bandwidth may lead to issues such as delaysin receiving requested digital content. In scenarios where an end userrequests digital video and/or audio data, such delays may cause lags,latency, and other quality issues. To alleviate quality issues caused bydiminished bandwidth, digital content may be cached at various levels ofthe PON and/or the service provider network.

Caching systems known in the art include so-called “managed” and“transparent” caching systems. In the case of a managed caching system,a device or administrator may determine the particular content that isto be cached, and cause, for example, a downstream network device tostore the predetermined content. In a transparent caching system, on theother hand, a network device may be equipped to monitor content thatpasses through the network device, and capture and store content thatpasses through at a certain frequency. In examples, a network deviceimplementing a transparent caching system may replace currently cachedcontent with new content that exceeds a certain frequency (e.g., basedon cache storage limitations, a time period over which the new contentwas requested, and various other factors).

FIG. 1 is a block diagram illustrating an example network system 100that includes a cooperative distributed caching system that isimplemented using a hot cache 106, a wide cache controller 108, and oneor more wide caches 116A-116N positioned in various devices of thenetwork system, in accordance with one or more techniques of thisdisclosure. Network system 100 includes network device 104, optical lineterminal (OLT) 110, optical splitter 112, and service delivery platforms114A-114N (hereinafter, “SDPs 114”). As shown in FIG. 1, network device104 may be equipped with hot cache 106 and wide cache controller 108.Additionally, SDPs 114 may include corresponding wide caches 116A-116N(hereinafter, “wide caches 116”). Collectively, OLT 110, opticalsplitter 112, and SDPs 114 may form the optical delivery network (orODN) of network system 100. In other examples, the ODN may form aportion of an active optical network (AON) that implements one or moretechniques of this disclosure to perform the caching techniquesdescribed herein.

Network device 104 may be part of or otherwise coupled to serviceprovider network 102. Service provider network 102 may represent anetwork that is commonly owned and operated by a service provider toprovide one or more services to various customer premises that includeor are otherwise accessible to SDPs 114. Service provider network 102may provide a number of different services to the customer premises,including a voice service (often in the form of voice over Internetprotocol or VoIP), a data service (which may be referred to as anInternet service or data plan) and a video service (which may bereferred to as Internet protocol television or IPTV). Service providernetwork 102 is often a layer-three packet switched network thatimplements the third layer of the Open System Interconnection (OSI)reference model, where reference to layers in this disclosure may referto layers of this OSI reference model.

As discussed, each of SDPs 114 may be part of or otherwise coupled to arespective customer network (not shown for ease of illustration purposesonly). In various examples, SDPs 114 may also be referred to as“residential gateways,” “customer premise devices,” optical networkunits (ONUs), and optical network terminals (ONTs). Customer networksmay represent any network that is owned and operated by the customer ofthe service provider. Additionally, the customer networks may eachinclude customer premise equipment (CPE). CPE represent any device(s)that may consume one or more of the services to which the correspondingcustomer subscribes. Examples of CPE may include television set-topboxes, telephones, tablet computers, laptop computers, workstations,desktop computers, netbooks, ultrabooks, mobile phones (includingso-called “smart phones”), video gaming devices, Internet-readytelevisions, Internet-ready disc players, Internet streaming devices,portable gaming devices, personal digital assistant (PDA) devices,routers, hubs, gateways, printers or any other device capable ofreceiving or otherwise interfacing with the services provided viaservice provider network 102. In some instances, various CPE may bereferred to herein as customer devices and/or subscriber devices.

Customer networks are increasingly demanding more bandwidth withinservice provider network 102 to receive more and more services via theInternet rather than via separate communication systems (such as a cablenetwork or a plain old telephone system). Moreover, service providersmay prefer to maintain only a single data network for administrative andcost reasons, leading to a network architecture where all services areconverging on the packet switched network for delivery to customernetworks served by SDPs 114. While cable networks and the plain oldtelephone system (POTS) may support delivery of data services inconjunction with either video or voice, these networks do not commonlyprovide sufficient bandwidth to support all three going forward,especially as delivery of video data is increasingly requiring evergrowing amounts of bandwidth (considering that higher-resolution videois currently in high demand by many customers).

To meet both current demand and expected customer demand going forward,many service providers are forgoing previous cable networks or POTS toprovide optical networks as the “last mile,” meaning the last mile tothe customer. Optical networks provide large amounts of bandwidth to thecustomer at considerable speeds. Network system 100 may represent oneexample of an optical network that is coupled to various customernetworks via optical link 120, splitter 112 and optical fiber lines122A-122N (“fiber lines 122”). Network system 100 may comprise a passiveoptical network (PON) or an active optical network (such as thosereferred to as an active Ethernet (AE) optical network). Informationconcerning gigabit-capable PONs (GPONs) can be found in the GPONstandard (ITU-T G984), published by the International TelecommunicationUnion Telecommunication Standardization Sector, which is herebyincorporated by reference in its entirety. Other PON standards includebroadband PON (BPON) (ITU G.983) and gigabit Ethernet PON (GEPON) (IEEE802.3), all of which are incorporated herein in their respectiveentireties. In some implementations, system 100 may include opticalnetwork elements that implement wavelength division multiplexing (WDM).In general, network system 100 may conform to one of the standardsreferenced above; however, aspects of this disclosure are not solimited. Network system 100 may conform to any optical standard, variousproprietary standards, as well as any combination(s) thereof.

FIG. 1 also illustrates certain boundaries, including opticalcommunication boundary 124 and trust boundary 126. Optical communicationboundary 124 and trust boundary 126 are illustrated with dashed lines toindicate that they do not represent physical components of networksystem 100. Instead, each of optical communication boundary 124 andtrust boundary 126 may represent demarcations between regions that usedifferent communication protocols, are associated with different userprivileges, etc. For example, optical communication boundary 124 mayrepresent a demarcation between optical fiber-based communication andnon-optical fiber-based communication. More specifically, the portion ofnetwork system 100 illustrated to be above optical communicationboundary 124 may transmit and receive data over non-optical fiber-basedmedia, such as coaxial cables. The portion of network system 100illustrated to be below optical communication boundary 124 and abovetrust boundary 126 may transmit and receive data using optical-fiberbased communication (e.g., using optical link 120 and fiber lines 122).Additionally, portions of network system 100 illustrated to be belowtrust boundary 126 may transmit and receive data using non-opticalfiber-based media (e.g., as might be used over customer networks coupledto SDPs 114).

As shown, portions of OLT 110 are positioned on either side of opticalcommunication boundary 124. OLT 110 may serve as an interface betweenthe upstream non-optical fiber-based region and the ODN region ofnetwork system 100. More specifically, OLT 110 may send to and receivefrom service provider network 102, non-optical fiber-basedcommunications in various formats, such as Ethernet packets. Forexample, OLT 110 may communicate with one or more service providerdevices, such as service provider device 103, of service providernetwork 102 over coaxial cable 118. In the example of FIG. 1, OLT 110 iscommunicatively coupled directly to network device 104, via coaxialcable 118. It will be appreciated, however, that in variousimplementations, other network devices, such as routers, gateways,servers, etc. may be positioned between OLT 110 and network device 104.Network device 104 may interface with, and/or be part of serviceprovider network 102.

Trust boundary 126 may represent a demarcation based on user privileges,among other factors. In the example of FIG. 1, the regions illustratedto be above trust boundary 126 may represent a “trusted” region, whilethe regions illustrated to be below trust boundary 126 may represent an“open” region. More specifically, the trusted region may include devicesto which subscribers may not have “write privileges.” In other words, asubscriber, who is using a CPE downstream of SDPs 114, may not begranted permission to proactively store data to devices that areillustrated as being above trust boundary 126 (e.g., OLT 110 and networkdevice 104). More specifically, the subscriber may not have permissionto choose particular items of digital content, and instruct devicesillustrated as being above trust boundary 126 to store the chosen items.Instead, in various instances, one or more devices illustrated as beingabove trust boundary 126 may reactively store digital content based onthe subscriber's content requests. For example, one or more of SDPs 114may implement transparent caching techniques to store digital contentreactively to requests received from the subscriber. Additionally, invarious instances, SDPs 114 may deny so-called “read privileges” tosubscribers. More specifically, SDPs 114 may deny subscriber devices thepermission to discern the identities, descriptions, etc. of digitalcontent stored on respective wide caches 116. In turn, subscribers maysubmit traditional content requests to SDPs 114, and receive certaindigital content stored on wide caches 116. However, such subscribers maynot have permission to discern the origination point of the receivedcontent (e.g., one or more of wide caches 116 or hot cache 106). In thismanner, techniques of this disclosure may implement caching of digitalcontent while preserving privacy information among different subscriberswho use network 100 to obtain digital content.

As shown, wide caches 116 are positioned in the trusted region ofnetwork system 100. As a result, a subscriber may be able to downloaddigital content that is stored (or “cached”) in a corresponding one ofwide caches 116. However, the subscriber may not be able to activelystore data to wide caches 116. By positioning wide caches 116 in thetrusted region of network system 100, techniques of this disclosure maybe implemented to preserve certain key features of transparent cachingwith respect to wide caches 116. For example, wide caches 116 mayimplement transparent caching by monitoring data requests and/or bymonitoring the specific data that is passed downstream through widecaches 116. By denying downstream subscribers write permissions withrespect to wide caches 116, techniques described herein may reduce theoccurrence of data being stored to wide caches 116 by mechanisms otherthan transparent caching. In this manner, techniques of this disclosuremay preserve the integrity of transparent caching schemes implementedwith respect to wide caches 116.

In the example of FIG. 1, OLT 110 and each of SDPs 114 arecommunicatively coupled to optical splitter 112 using optical fiber line120. As shown in FIG. 1, optical splitter 112 may be further coupled toone or more SDPs 114 using optical fiber lines 122. In some examples,optical splitter 112 receives data from OLT 110 in the form of an“optical signal” and distributes the optical signal to each of SDPs 114.More specifically, optical splitter 112 “splits” this optical signal togenerate multiple copies of the received optical signal, transmitting acopy to each of SDPs 114. For purposes of illustration only, and inaccordance with the GPON standard, optical splitter 112 is a so-called“passive optical splitter,” i.e. optical splitter 112 splits an opticalsignal received from OLT 110 by generating multiple copies (or “opticalsub-signals”) of the signal and distributes the optical sub-signals toSDPs 114 using optical fiber lines 122 in the example of GPON withoutactively switching the sub-signals to the appropriate ones of SDPs 114or requiring powered components. In some examples, optical splitter 112may include, be part of, or be coupled to an optical combiner. In theseexamples, optical splitter 112 may receive optical sub-signals from SDPs114, multiplex the received optical sub-signals into a combined opticalsignal, and then transmit the combined optical signal to OLT 110.

As shown in FIG. 1, OLT 110 terminates the line coupling the customernetworks associated with SDPs 114 to service provider network 102. OLT110 generally represents any optical device that aggregates traffic fromSDPs 114 for delivery upstream via service provider network 102 to theInternet or other destination, and separates traffic from the Internetor other source for delivery downstream to separate customer networkscoupled to SDPs 114. As described above, OLT 110 may be capable ofoptical fiber-based communication (e.g., using optical link 120), aswell as non-optical fiber-based communication (e.g., using coaxial cable118). As such, OLT 110 may serve as an interface between non-opticalfiber-based service provider network 102 and the optical fiber-based ODNof network system 100. While discussed with respect to coaxial cable 118for purposes of clarity, it will be appreciated that OLT 110 maycommunicate over service provider network 102 using various electricalsignal-based formats, such as through the use of twisted metal (e.g.,twisted pair copper wires), optical fiber-based channels, or variouswireless infrastructures.

Network device 104 may be positioned upstream of OLT 110, such as withinservice provider network 102. Network device 104 may include, be, or bepart of various types of devices, such as a router, a server, andothers. Additionally, network device 104 may, in variousimplementations, be coupled directly to OLT 110 (e.g., via coaxial cable118, as in the example of FIG. 1), or be coupled indirectly to OLT 110(e.g., with other network devices positioned between network device 104and OLT 110). In any event, network device 104 may send data to andreceive data from OLT 110 in various non-optical formats, such asEthernet packets. Network device 104 may be positioned downstream ofother devices of service provider network 102, such as service providerdevice 103, which may, in various instances, be operated by an Internetservice provider.

As illustrated in FIG. 1, network device 104 may include a cache,referred to as hot cache 106, and wide cache controller 108. Hot cache106 may implement one or more of the transparent caching mechanismsdescribed above. As one example, one or more components network device104 may monitor digital content requests received from OLT 110. Asanother example, these components of network device 104 may survey datathat passes downstream through network device 104, such as data thatnetwork device 104 retrieves from service provider network 102 inresponse to content requests from OLT 110, and transmits downstream toOLT 110. Using frequency-based metrics associated with the contentrequests and/or the data surveyed, such components of network device 104may store, to hot cache 106, copies of certain data that network device104 transmits to OTL 110. One example use of a frequency-based metric isan impact rating (IR) system that is described in further detail below.

Wide cache controller 108 may be configured or otherwise operable tostore references to one or more of wide caches 116. One widely-usedexample of a reference is commonly known as a “pointer.” A pointer maybe described as a first data value that specifies a storage location (or“address”) of a second data value. Wide cache controller 108 may storepointers that identify which of wide caches 116 include specific data,and the storage addresses of the data within the relevant ones of widecaches 116. In various implementations, wide cache controller 108 maystore pointers to all data stored to each of wide caches 116, only datastored in wide caches 116 that is not currently stored to hot cache 106,only one pointer corresponding to a specific item of digital content(thereby avoiding duplication across two or more of wide caches 116),and others.

Techniques of this disclosure may enable a distributed, cooperativecaching scheme through the use of wide caches 116, hot cache 106, andwide cache controller 108. As described, each of wide caches 116 maystore various data through implementation of the transparent cachingscheme. Each of wide caches 116 may store different data, based onspecific content requests received from the respective customernetworks. As one example, the data stored to wide cache 116A may notinclude any data that is stored to wide cache 116N. In another example,wide caches 116A & 116N may store some amount of common data, while alsostoring data that is not common to both. In this manner, each of widecaches 116 may store data that caters to content requests received fromits respective customer network.

In some implementations, a service delivery platform, such as SDP 114A,may receive a request from a subscriber device (e.g., one or more CPEcoupled to SDP 114A). The request may identify digital content, such asdigital video data available through service provider network 102. SDP114A may check whether the requested digital content is stored on widecache 116A. As described in more detail below, SDP 114A may storedigital content to wide cache 116A based on the frequency with which SDP114A receives requests for the digital content. If SDP 114A determinesthat the requested digital content is stored on wide cache 116A, SDP114A may send data associated with the requested digital content to thesubscriber device that sent the request.

If SDP 114A determines that the requested digital content is not storedon wide cache 116A, SDP 114A may perform one or more operations. Forexample, SDP 114A may forward the received request upstream to a networkdevice, such as OLT 100. For example, SDP 114A may forward the requestto network device 104 (e.g., the upstream network device), via anupstream burst transmitted to OLT 110. In connection with forwarding therequest, SDP 114A may receive, from network device 104, data associatedwith the requested digital content. In some examples, responsive toreceiving the request, SDP 114A may increment an impact rating (“IR”) ofthe digital content. In general, the IR of any digital content mayrepresent a frequency with which subscribers request the digital contentfrom a particular one of SDPs 114. By incrementing the IR of specificdigital content with each received request, SDP 114A may effectivelyrank various digital content according to the demand for the variousdigital content. In some examples, SDP 114A may further qualify the IRof digital content, such as by decrementing the IR if the digitalcontent has not been requested for a predetermined period of time, ifthe number of requests for the digital content declines over apredetermined period of time, etc.

In various scenarios described in more detail below, network device 104may transmit the data from hot cache 106, retrieve the data from anotherone of wide caches 116, or retrieve the data from a device (e.g.,service provider device 103) that is positioned upstream of networkdevice 104 in service provider network 102. Upon receiving the dataassociated with the requested digital content, SDP 114A may forward thereceived data to the subscriber device that originally sent the request.Additionally, if the IR of the requested digital content (as incrementedafter receiving the request) is greater than a predetermined thresholdvalue, SDP 114A may store, to wide cache 116A, the received dataassociated with the requested digital content.

As described, in certain scenarios, SDP 114A may forward a digitalcontent request upstream, e.g., to network device 104. Upon receivingthe forwarded request from SDP 114A, network device 104 may perform oneor more operations. For example, network device 104 may increment an IRassociated with the requested digital content. In examples, the IR valuethat network device 104 stores for certain digital content may vary fromthe IR value that one or more of SDPs 114 stores for the same digitalcontent. More specifically, network device 104 may receive requests frommore than one of SDPs 114 for the same digital content, resulting innetwork device 104 maintaining a higher IR for the digital content thanany given one of the requesting SDPs 114.

Additionally, network device 104 may check whether the requested digitalcontent is stored on hot cache 106. If network device 104 determinesthat the requested digital content is stored on hot cache 106, networkdevice 104 may transmit data associated with the requested digitalcontent to SDP 114A. If, however, network device 104 determines that therequested digital content is not stored on hot cache 106, network device104 may attempt to retrieve the requested digital content from varioussources, in accordance with one or more distributed cooperative cachingtechniques of this disclosure.

For example, network device 104 may check, using wide cache controller108, whether the requested digital content is stored on any of widecaches 116 apart from wide cache 116A of requesting SDP 114A. Morespecifically, network device 104 may determine whether wide cachecontroller 108 includes a pointer that identifies the requested digitalcontent. If wide cache controller 108 includes a pointer that identifiesthe requested digital content, network device 104 may use the pointer todetermine which of wide caches 116 includes the requested digitalcontent, and the storage address of the digital content within one ormore of wide caches 116. Network device 104 may then send a backuprequest to the identified one of SDPs 114 (e.g., SDP 114N) that hasaccess to the digital content stored on its respective one of widecaches 116 (in this example, wide cache 116N).

In turn, SDP 114N may receive the backup request, and respond bytransmitting data associated with the requested digital content tonetwork device 104 (e.g., via an upstream burst to OLT 110). Uponreceiving the data from SDP 114N in response to the backup request,network device 104 may send the received data to SDP 114A (whichforwarded the original request for the digital content to network device104). In the event that network device 104 determines that wide cachecontroller 108 does not include a pointer to the requested digitalcontent, network device 104 may instead send the backup request upstreamover service provider network 102 (e.g., to service provider device 103,which is positioned upstream of network device 104 in service providernetwork 102).

In instances where network device 104 receives the data in response to abackup request (whether from SDPs 114 or from upstream service providerdevice 103), network device 104 may compare its stored IR (asincremented) of the digital content to a threshold value. Similarly tothe IR-based techniques described with respect to SDP 114A, networkdevice 104 may store the received data to hot cache 106 if theincremented IR exceeds the threshold. In various implementations,network device 104 may use a higher threshold IR value than thethreshold IR values used by one or more of SDPs 114. As described,network device 104 may receive a greater number of requests forparticular digital content than any one of SDPs 114 receives. As aresult, network device 104 may use a higher threshold value indetermining that digital content should be stored to hot cache 106.

FIG. 2 is a block diagram illustrating details of an example servicedelivery platform (SDP) 200, in accordance with one or more aspects ofthis disclosure. SDP 200 may be one example implementation of one ormore of SDPs 114 illustrated in FIG. 1. In the context of network system100 of FIG. 1, SDP 200 may serve as an interface between the ODN region,which relies on optical fiber-based communication, and a downstreamcustomer network which often relies on non-optical fiber-basedcommunication. For example, SDP 200 may communicate over the ODN regionvia optical fiber link 212, and communicate over the customer networkusing coaxial link 214. While discussed with respect to coaxial link214, SDP 200 may, in various implementations, communicate over thecustomer network using metal wires other than coaxial link 214 (such astwisted metal infrastructures, including twisted pair copper), variouswireless communication protocols, and so-called “fiber cables” (whichmay include one or more optical fibers).

Additionally, SDP 200 may include control unit 202. Control unit 202may, in various implementations, include any combination of one or moreprocessors, one or more field programmable gate arrays (FPGAs), one ormore application specific integrated circuits (ASICs), and one or moreapplication specific standard products (ASSPs). Control unit 202 mayalso include memory, both static (e.g., hard drives or magnetic drives,optical drives, FLASH memory, EPROM, EEPROM, etc.) and dynamic (e.g.,RAM, DRAM, SRAM, etc.), or any other computer-readable storage device ornon-transitory computer readable storage medium capable of storinginstructions that cause the one or more processors (e.g., control unit202) to perform the efficient network management techniques described inthis disclosure. Thus, control unit 202 may represent hardware or acombination of hardware and software to support the below describedcomponents, modules or elements, and the techniques should not bestrictly limited to any particular embodiment described below. Althoughvarious components of SDP 200 are illustrated as being included incontrol unit 202 in FIG. 2, it will be appreciated that one or more ofthese components, such as wide cache 210, content monitoring module 204,IR calculation module 206, and storage priority module 208, may bepositioned externally to control unit 202 in various implementations.

In the example of FIG. 2, control unit 202 includes content monitoringmodule 204, impact rating (IR) calculation module 206, storage prioritymodule 208, and wide cache 210. In various implementations,functionalities described with respect to two or more of IR calculationmodule 206, storage priority module 208, and wide cache 210 may beperformed by a single module. Conversely, in other implementations,functionalities described with respect to any one of IR calculationmodule 206, storage priority module 208, and wide cache 210 may beperformed by multiple modules. Additionally, in certain implementations,functionalities described with respect to one or more of IR calculationmodule 206, storage priority module 208, and wide cache 210 may beimplemented externally to SDP 200, and SDP 200 may access thefunctionalities through method commonly known as “cloud computing.” Insome examples, SDP 200 may communicate via one or both of optical fiberlink 212 and coaxial link 214 using one or more network interfaces (notshown in FIG. 2 for ease of illustration purposes only). For example, anoptical network interface may enable SDP 200 to send and receive datavia optical fiber link 212 while communicating with an upstream device,such as an OLT.

As described with respect to SDPs 114 of FIG. 1, SDP 200 (and/or variouscomponents thereof) may implement a caching scheme known as “transparentcaching.” More specifically, SDP 200 may store specific digital contentto wide cache 210 based on frequency-based data associated with thedigital content. As one example, content monitoring module 204 maymonitor the number of requests received from the CPE of the subscribervia coaxial link 214 identifying each piece of digital content. Asanother example, content monitoring module 204 may monitor the number oftimes that the digital content is received (e.g., in response SDP 200forwarding a request upstream over optical fiber line 212).Additionally, content monitoring module 204 may monitor content requestsreceived via coaxial link 214 and/or digital content received viaoptical link 212, and communicate the monitored data to IR calculationmodule 206.

In turn, IR calculation module 206 may increment the impact rating (IR)of digital content based on data received from content monitoring module204. IR calculation module 206 may increment the IR by various measures,based on the application and weighting of different parameters. Anexample equation that IR calculation module 206 may apply to calculatethe IR value for a particular item of digital content is presentedbelow:

Impact Rating=[TotalHits(N)+(2*HitsToday)]*[ContentMBytes/NormalMB]

In the example equation presented above, “TotalHits(N)” may representthe output of a function that sums the total hits (e.g., hits mayrepresent requests for digital content or instances of the digitalcontent passing through SDP 200) within a predetermined time window(e.g., that corresponds to ‘N’ number of days). “HitsToday” maycorrespond to a count of all requests for the digital content on acurrent day, e.g., going back to a time of 0:00 (midnight) during thecurrent day. In some implementations, HitsToday may correspond to acount of all requests for the digital content over a 24-hour window(such as from noon of a previous day to noon of a current day, a timespanning from a current time through 24 hours prior to the current time,etc.). “ContentMBytes” may correspond to a size of all content currentlystored on wide cache 210. In instances where the value of ContentMBytesis not available or discernible to IR calculation module 206, IRcalculation module 206 may assign ContentMBytes the same value that iscurrently assigned to “NormalMB” (described below).

In various examples, NormalMB may be a factor used by IR calculationmodule 206 to differentiate between different types of digital content.In some scenarios, IR calculation module 206 may use NormalMB todifferentiate between video data streamed to CPE such as a television ora set-top box (e.g., a television show, movie, sporting event, etc.)from video data streamed to a subscriber device such as a desktop orlaptop computer (e.g., clips provided by video sharing services, lowerresolution video content provided on an on-demand basis, and others).For instance, NormalMB may have a value of 1050 MB for high-definitiontelevision (HDTV) content (such as 7 megabits per second, or 7 Mbps HDTVcontent), but may have a value of 375 MB for standard-definitiontelevision (SDTV) content (such as 2.5 Mbps SDTV content). In someimplementations, content monitoring module 204 may determine whether areceived item of digital content includes HDTV content or SDTV content.In various such implementations, content monitoring module 204 may sendthe corresponding value of NormalMB to IR calculation module 206, or maysend the HDTV/SDTV classification to IR calculation module 206, usingwhich IR calculation module 206 may derive the corresponding value ofNormalMB.

In various implementations, IR calculation module 206 may use differentnumerical values for each of the variables described with respect to theequation described above. More specifically, IR calculation module 206may use numerical values that are suited to IR calculations with respectto a wide cache, such as wide cache 210. Additionally, IR calculationmodule 206 may use different values based on whether or not therequested digital content is currently stored on wide cache 210. Invarious implementations, IR calculation module 206 may obtain thenumerical values from one or more volatile and/or non-volatile storagedevices of control unit 202, on which the current numerical values maybe stored. Control unit 202 may obtain the current numerical values forthe variables from various sources, such as from an upstream networkdevice via optical link 212. In instances where control unit 202 has notreceived a current numerical value for a variable, control unit 202 maystore a default value for the variable, such as one or more of thespecific numerical values listed below.

In one implementation, IR calculation module 206 may use the followingnumerical values with respect to content that is not currently stored onwide cache 210: N=1 day, NormalMB=375 megabytes (MB),ContentMBytes=actual size of the requested/passing-through digitalcontent (or, alternatively, a default value of 375 MB if the actual sizeis unknown), TotalHits(N)=0, and HitsToday=1. As described, IRcalculation module 206 may assign an IR to new content as part ofdetermining whether or not to store the new content to wide cache 210.In various scenarios, the combination of numerical values listed abovemay be suited to the determination of whether to store the new contentto wide cache 210 (which, in several situations, may require thedeletion of certain content currently stored on wide cache 210).

Similarly, IR calculation module 206 may use a dedicated set ofnumerical values in the calculation with respect to calculating andupdating the IR of digital content that is already stored on wide cache210. As one example, IR calculation module 206 may use the followingcombination of numerical values with respect to content that is alreadystored on wide cache 210: N=1 day, NormalMB=375 MB, ContentMBytes=actualsize of the digital content, TotalHits(N)=[current value ofTotalHits(N)+1], and HitsToday=[current value of HitsToday+1]. As shown,in the case of digital content that is already stored on wide cache 210,the numerical values of certain variables may include simple incrementsof already-stored values. For example, in the process of updating the IRof requested digital content that is already stored to wide cache 210,IR calculation module 206 may increment a currently stored value ofHitsToday by 1 (i.e., by a single count). In this manner, IR calculationmodule 206 may calculate and assign an IR to various digital contentusing criteria suited to scenarios where the digital content iscurrently stored on wide cache 210 and alternate scenarios where thedigital content is new.

As shown, the variables used in the IR equation may enable IRcalculation module 206 to periodically update the IR of digital content,thus maintaining a more relevant and up-to-date IR for various digitalcontent. For instance, the equation includes temporal elements, such asN, denoting a recently elapsed number of days, and HitsToday, whichlimits a number of hits to a current day. If an item of digital contenthas been requested repeatedly over an extended period of time, but hasbeen requested with less frequency over a more recent time span, thesetemporal elements may reduce the IR of the item. Thus, IR calculationmodule 206 may effectively decrement the IR of “stale” digital content,i.e., digital content that has not been requested with a requisitefrequency during a more recent time frame. In this manner, IRcalculation module 206 may include both quantitative and temporalfactors in dynamically updating the IR of various items of digitalcontent. As one example, “current” content (e.g., content that has beenrequested frequently) may be elevated in priority/preference over stalecontent for storage to wide cache 210.

As shown in FIG. 2, SDP 200 may also include storage priority module208. Storage priority module 208 may be configured or otherwise operableto determine preferences in terms of storing digital content to widecache 210. SDP 200 may utilize one or more functionalities provided bystorage priority module 208 in various scenarios. As some examples, SDP200 may utilize the functionalities of storage priority module 208 indetermining whether to replace certain digital content stored to widecache 210 with new digital content based on a comparison of IRs,deciding between competing new digital content when available storagecapacity of wide cache 210 is limited, etc.

In several scenarios, storage priority module 208 may receive data fromIR calculation module 206, and use the received data in determiningstorage preferences for various digital content with respect to widecache 210. In some examples, storage priority module 208 may receive therespective IRs for digital content currently stored on wide cache 210.In one such example, the received IRs may correspond to a single item ofnew digital content, and a single item of stored digital content. Inthis example, storage priority module 208 may select the single item ofstored digital content based on the respective IRs of all digitalcontent currently stored on wide cache 210. For instance, the selectedsingle item of stored digital content may be the item with the lowest IRof all currently stored digital content. By selecting the item with thelowest IR of all digital content stored on wide cache 210, storagepriority module 208 may select only those items of stored digitalcontent that warrant replacement with new digital content of a greaterIR.

Additionally, storage priority module 208 may compare the IR of newdigital content with the IR of the one or more selected items of storeddigital content. In some implementations, storage priority module 208may compare the IR of each item of new digital content to the selecteditem(s) of stored digital content. If storage priority module 208determines that the IR of an item of new digital content is higher thanthe IR of one or more items of stored digital content, storage prioritymodule 208 may select the new digital content for possible storage towide cache 210. In one example, storage priority module 208 may deletethe selected stored digital content from wide cache 210, based solely onthe higher IR of the new digital content. In this example, storagepriority module 208 may store the new digital content to wide cache 210,provided that wide cache 210 has sufficient available storage capacityto accommodate the new digital content.

In other examples, storage priority module 208 may determine whetherwide cache 210 has sufficient available storage capacity to accommodatethe new digital prior to deleting the selected item(s) of stored digitalcontent. In other words, if storage priority module 208 determines thatwide cache 210 does not have available storage capacity sufficient toaccommodate the new digital content, storage priority module 208 may notdelete any digital content from wide cache 210. In this implementation,storage priority module 208 may implement the techniques of thisdisclosure to maximize the use of the storage capacity of wide cache 210by preserving as much existing digital content as possible when widecache 210 cannot accommodate new digital content having at least athreshold IR.

In various other implementations, storage priority module 208 may useother criteria, in addition to IRs of digital content, in determiningwhether to replace digital content currently stored on wide cache 210with new digital content. In some such implementations, storage prioritymodule 208 may attach greater importance to how recently various digitalcontent was requested or, in the case of new digital content, routeddownstream through SDP 200.

In these implementations, storage priority module 208 may cause IRcalculation module 206 to vary the numerical values of certain variablesused in the IR calculation equation. For example, storage prioritymodule 208 may cause IR calculation module 206 to reduce the numericalvalue used for N, thus focusing the equation on a more recent time span.In this and other examples, storage priority module 208 may attach agreater weight to HitsToday (e.g., multiplying HitsToday by a factorgreater than 2, as shown in the example equation above). In this manner,storage priority module 208 may cause IR calculation module 206 toadjust the implemented IR calculation methods in order to include orattach greater weight to various factors.

In some examples, SDP 200 may utilize one or more functionalitiesprovided by storage priority module 208 to choose among competing itemsof new digital content to be stored to wide cache 210. In variousscenarios, two items of new digital content may be assigned an equal IRby IR calculation module 206. In some instances, the IR shared by thetwo items may be sufficiently high to warrant storage to wide cache 210(e.g., by virtue of being higher than the IR of a selected item ofstored digital content, etc.). However, wide cache 210 may not haveavailable storage capacity sufficient to store both of the items of newdigital content. In such a scenario, storage priority module 208 mayimplement one or more techniques of this disclosure to choose one itemof new digital content to store to wide cache 210.

As one example, storage priority module 208 may select an item based onthe available storage capacity of wide cache 210 (e.g., one item may beof sufficiently small size to be stored to wide cache 210, while thesecond item may be too large). As another example, if wide cache 210 hassufficient available storage capacity for either item, but not both,storage priority module 208 may store the larger of the two items towide cache 210. In this example, storage priority module 208 may chooseto move the larger item closer to the subscriber, thus reducing theamount of data that may need to be retransmitted downstream owing torepeat requests. As another example, storage priority module 208 mayselect one or more characteristics of the items on which to base thedetermination, such as which item has been requested more recently, etc.(similar to the IR adjustment methods described above).

As described with respect to SDPs 114 of FIG. 1, SDP 200 may receive oneor more requests for digital content from a subscriber device (e.g.,over coaxial link 214). Responsive to the request, IR calculation module206 may increment the IR of the requested digital content, and SDP 200may check whether the requested digital content is stored on wide cache210. If SDP 200 determines that the requested digital content is storedon wide cache 210, SDP 200 may send data (e.g., a copy of) associatedwith the digital content to the subscriber device over coaxial link 214.If, however, SDP 200 determines that the requested digital content isnot stored on wide cache 210, SDP 200 may forward the received requestto an upstream computing device (e.g., an OLT) over optical fiber link212.

SDP 200 may receive data associated with the requested digital contentfrom the upstream computing device over optical fiber link 212, andforward the received data over coaxial link 214 to the subscriber devicethat originally requested the digital content. In this event, storagepriority module 208 may determine whether the incremented IR of thedigital content is greater than a threshold value, and if so, store thereceived data to wide cache 210. In various scenarios, the received datamay originate from a hot cache implemented on an upstream computingdevice, a wide cache of a different SDP of a PON to which SDP 200 iscoupled, or from a service provider device (e.g., making the receiveddata traditional “over the top” content).

In sum, SDP 200 may use various functionalities provided by control unit202 to implement one or more techniques of this disclosure. For example,network device 300 may receive, using coaxial link 214, a request thatidentifies digital content. Responsive to receiving the request, SDP 200may (e.g., using content monitoring module 204) determine whether theidentified digital content is stored on wide cache 210. If theidentified digital content is not stored on wide cache 210, SDP 200 mayforward the request over optical link 212 to a network device (e.g., viaan upstream OLT), and receive the identified digital content from thenetwork device. In examples, the received digital content may includedigital content that is stored on a hot cache of the network device,and/or digital content that is stored on another wide cache (differentfrom wide cache 210) of another SDP (different from SDP 200) that issent from the other SDP via the network device. SDP 200 may (e.g., usingcontrol unit 202) forward the received digital content over coaxial link214 to the requesting subscriber device, and store, the received digitalcontent to wide cache 210 if an IR of the digital content (asincremented by IR calculation module 208) is greater than a thresholdvalue.

The functionalities described with respect to SDP 200 and componentsthereof may provide several potential advantages. As described, bystoring frequently requested digital content to wide cache 210, SDP 200may effectively move the digital content closer to the requestingcomputing devices and/or consumers. Additionally, SDP 200 may cater tomore than one downstream consumer. For example, coaxial link 214 mayconnect to a coaxial splitter, which in turn may distribute contentforwarded by SDP 200 to multiple consumers via the consumers' respectiveCPE. In other implementations, such as where SDP 200 couples to theconsumer networks by non-coaxial channels, the downstream link mayconnect to a twisted pair hub (in the case of twisted pair copper), apassive splitter (in the case of optical fiber-based links), and others.In some scenarios, if a first CPE requests a particular item of digitalcontent with sufficient frequency for SDP 200 to store the item to widecache 210, a second consumer served by SDP 200 who requests the samedigital content may benefit from the activities of the first consumer.More specifically, the activities of the first consumer may cause SDP200 to store the digital content proximate to the second consumer. Inthis manner, techniques implemented by SDP 200 with respect to widecache 210 may offer cross-consumer sharing of cached content, therebymitigating resource consumption and bandwidth loss over networks towhich SDP 200 is coupled.

FIG. 3 is a block diagram illustrating details of an example networkdevice 300 that implements a hot cache 310 and a wide cache controller(WCC) 312, in accordance with one or more aspects of this disclosure.Network device 300 may be one non-limiting example implementation ofnetwork device 104 and/or OLT 110 illustrated in FIG. 1. Additionally,network device 300 may be coupled to a service provider network viaupstream link 316 and to an optical network via downstream link 318. Inexamples where network device 300 is positioned upstream of an ODN,downstream link 318 may be a non-optical fiber-based medium, such as acoaxial link. On the other hand, in examples where network device 300 iscoupled directly to an ODN, downstream link 318 may be an optical fiberlink. In various implementations, network device 300 may use one or morenetwork interfaces (not shown for ease of illustration purposes only) tocommunicate over upstream link 316 and/or downstream link 318. Forexample, network device 300 may receive, at a network interface, datasent from a downstream SDP via downstream link 318. Similarly, networkdevice 300 may send data from the network interface to variousdownstream SDPs via downstream link 318.

Control unit 302, content monitoring module 304, impact rating (IR)calculation module 306, and storage priority module 308 may includefeatures and perform functionalities similar to those of control unit202, content monitoring 204, IR calculation module 206, and storagepriority 208, respectively, of FIG. 2. Therefore, for ease of discussionpurposes only, these components of network device 300 are not describedseparately herein. These components of network device 300 may performthe described functionalities with respect to storage of digital contentto hot cache 310. Additionally, these components may adjust thetechniques to suit the nature of hot cache 310. For example, IRcalculation module 306 may use a value of three days for N (instead ofone day in the case of a wide cache), and 1000 MB, or 1 Gigabyte (GB)for NormalMB (displaying a preference to conserve hot cache forlarger-sized data than the 375 MB for a typical wide cache).Additionally, IR calculation module 306 may load, derive, or otherwiseobtain the numerical values for variables such as ContentMBytes,TotalHits(N) and HitsToday from WCC 312, whereas a downstream SDP maynot have access to the functionalities of a component similar to WCC 312with respect to IR calculations for a wide cache.

As shown, network device 300 may include hot cache 310. Network device300 and components thereof may store various digital content to hotcache 310, e.g., through one or more of transparent caching methodsimplemented by content monitoring module 304, ranking methodsimplemented by IR calculation module 306, and storage preference methodsimplemented by storage priority module 308. In some implementations, hotcache 310 may be larger (i.e., have a greater data storage capacity)than the various wide caches of the respective downstream SDPs. Suchenhanced data storage capacities associated with hot cache 310 mayenable network device 300 to cache digital content to cater topotentially varying requests multiple downstream SDPs.

In addition, network device 300 may be equipped with wide cachecontroller (WCC) 312. Through various implementations, WCC 312 may storereferences, such as pointers, which specify the storage locations (or“addresses”) of data, such as digital content requested by downstreamSDPs. More specifically, in some such implementations, WCC 312 mayinclude pointers that specify the storage addresses of various digitalcontent stored on the wide caches of one or more downstream SDPs. Forexample, a downstream wide cache, such as wide cache 210 of SDP 200illustrated in FIG. 2, may store data associated with several items ofdigital content. In this instance, WCC 312 may store a separate pointerto the storage address of each item of digital content stored on widecache 210. Similarly, WCC 312 may store multiple pointers to storageaddresses of the respective wide caches of other downstream SDPs.

In some examples, WCC 312 may store pointers to only those items ofdigital content that are not currently stored on hot cache 310. Byexcluding pointers to digital content already stored to hot cache 310,WCC 312 may eliminate pointer storage for digital content that isalready available from hot cache 310, and which network device 300 maynot need to request from a downstream SDP or an upstream serviceprovider device. In such implementations, WCC 312 may conserve storagespace and computing resources of network device 300 by eliminatingsuperfluous pointers. In these and other resource-conservingimplementations, WCC 312 may store only a single pointer to an item ofdigital content, even if the same digital content is stored on multipledownstream wide caches.

In other examples, WCC 312 may store pointers to all items of digitalcontent stored on the downstream wide caches, regardless of whether ornot any such digital content is currently stored to hot cache 310. Inthese implementations, WCC 312 may provide network device 300 withseamless, uninterrupted access to digital content stored on thedownstream wide caches, in the event that any such digital content isdeleted from hot cache 310 (e.g., by storage priority module 308).Additionally, in some situations where WCC 312 includes multiplepointers to the same digital content, WCC 312 may also send aninstruction and/or a pointer count to IR calculation module 306 and/orstorage priority module 308 in order to store the digital content to hotcache 310. In this manner, WCC 312 may be implemented in various ways inaccordance with one or more techniques of this disclosure, thus addingvarious advantages to the functionalities provided by network device300.

Additionally, WCC 312 may access and supply various data to othercomponents of network device 300, thereby enabling and/or enhancing oneor more functionalities of the other components. For example, WCC 312may supply data to IR calculation module 306, which in turn, IRcalculation module 306 may use in generating IR values for variousdigital content that is stored on or is eligible for storage to hotcache 310. Such data may include numerical values for variables such asContentMBytes, TotalHits(N), and HitsToday. For example, WCC 312 maystore the pointers as part of a data structure (such as an array, list,tree, heap, hash, table, and other data structures known in the art).Drawing on various attributes of the data structure, WCC 312 may loadnumerical values, such as the size of an item of digital content(ContentMBytes), into IR calculation module 306.

In one specific example, IR calculation module 306 may require the valueof ContentMBytes for an item of digital content that is eligible forstorage to hot cache 310, but that is not currently stored on hot cache310. In this situation, IR calculation module 306 may draw the necessarynumerical values from WCC 312 in order to calculate the IR of an item ofdigital content. In one illustrative example, WCC 312 may discern thesize of an item of digital content by a simple subtraction of the valueof the pointer to the item from the value of a pointer to a subsequentitem. In this manner, WCC 312 may supply data to other components ofnetwork device 300 that is useful or potentially vital to one or morefunctionalities of the other components.

As shown in FIG. 3, network device 300 may also include backup requestmodule 314. Backup request module 314 may be configured or otherwiseoperable to forward requests for digital content via downstream link318. More specifically, backup request module 314 may forward requeststo various downstream SDPs, based on data drawn from WCC 312. Forexample, network device 300 may receive, via downstream link 318, arequest for digital content from a first SDP. Responsive to networkdevice 300 receiving the request, IR calculation module 306 mayincrement the IR of the requested digital content (e.g., by incrementingvalues such as HitsToday and TotalHits(N) of the requested digitalcontent). Additionally, network device 300 (e.g., using functionalitiesprovided by control unit 302) may determine whether the requesteddigital content is stored on hot cache 310. If the requested digitalcontent is, in fact, stored on hot cache 310, network device 300 maytransmit data associated with the digital content (e.g., a copy), to therequesting first SDP.

If, however, the requested digital content is not stored on hot cache310, network device 300 (or components thereof, such as control unit302) may use WCC 312 to determine whether the requested digital contentis stored on a wide cache of any other SDPs to which network device 300is coupled via downstream link 318. More specifically, network device300 may check whether WCC 312 includes any pointers to the requesteddigital content. If network device 300 determines that WCC 312 includesat least one pointer to the requested digital content, network device300 may utilize one or more functionalities provided by backup requestmodule 314. For example, backup request module 314 may forward thereceived request for the digital content to a second SDP identified by apointer of WCC 312. More specifically, the second SDP may be identifiedby the pointer of WCC 312 as having the requested digital content storedto its wide cache.

Additionally, the pointer may specify the storage address (e.g., astarting and/or ending addresses) of the requested digital content inthe wide cache of the second SDP. In some optional implementations ofthe techniques of this disclosure, backup request module 314 may obtainthe storage address of the requested digital content from WCC 312, andinclude the storage address information in the forwarded request,thereby enabling the second SDP to more easily locate and retrieve dataassociated with the requested digital content. In these and otheroptional implementations, backup request module 314 may forward therequest to multiple (e.g., second and third) SDPs identified by pointersof WCC 312. In such implementations, backup request module 314 mayeffectively request the digital content from multiple backup sources,thereby creating more options in case of delays or failures in receivingthe digital content from a particular SDP. In this manner, backuprequest module 314 may implement the techniques of this disclosure toprovide various advantages with respect to network device 300 receivingdigital content from downstream wide caches.

In scenarios where backup module 314 determines that WCC 312 does notinclude a pointer to the requested digital content, backup module 314may forward the received request to an internet service provider (ISP).For example, backup module 314 may forward the request upstream to aservice provider device via upstream link 316. In turn, network device300 may receive the requested digital content from the ISP via upstreamlink 316. Digital content received from the ISP and forwarded downstreamto the requesting SDP may form content known in the art as over-the-top(“OTT”) content. Additionally, the received OTT content may providenetwork device 300 to store data (e.g., a copy of the OTT content) tohot cache 310, based on determinations by IR calculation module 306and/or storage priority module 308.

Upon receiving the digital content as requested by backup request module314, network device 300 may forward the received digital content to therequesting (first) downstream SDP via downstream link 318. Additionally,based on the incremented IR calculated by IR calculation module 306(and/or other impact-related factors), network device 300 may store dataassociated with (e.g., a copy of) the received digital content to hotcache 310. In this manner, network device 300 may implement the cachingtechniques of this disclosure to operate hot cache 310 in either anindependent fashion, or in a synergistic fashion, forming a distributed,cooperative caching system that includes hot cache 310 as well as one ormore wide caches positioned downstream of network device 300.

FIG. 4 is a flowchart illustrating an example process 400 by which anupstream network device equipped with a hot cache and wide cachecontroller, and one or more service delivery platforms each equippedwith a wide cache, may cooperatively implement one or more distributedcaching techniques of this disclosure. Although process 400 may beperformed by various combinations of devices, for purposes of clarityonly, process 400 is described herein with reference to SDP 200 of FIG.2 and network device 300 of FIG. 3. It will also be appreciated that,while various steps of process 400 are described herein in a particularorder, other orders of these steps may be possible according to aspectsof this disclosure.

Process 400 may begin when SDP 200 receives, via coaxial link 214, asubscriber request for digital content (step 402). As discussed, thesubscriber request may originate from a computing device positioned in acustomer network associated with SDP 200, and may include a request forone or more of audio, video, and other types of data supported by a PONto which SDP 200 is coupled via optical fiber link 212. Responsive toreceiving the subscriber request, SDP 200 may check for the requesteddigital content on its local wide cache, namely, wide cache 210 (step404). Based on whether or not the requested content is stored on widecache 210, SDP 200 may perform different steps (decision block 406). Forexample, if SDP 200 determines that the requested content is stored onwide cache 210 (YES of 406), SDP 200 may send data associated with thecontent downstream, via coaxial link 214, to the subscriber (step 410).

However, if SDP 200 determines that the requested content is not storedon wide cache 210 (NO of 406), SDP 200 may forward the subscriberrequest upstream via optical fiber link 212 (step 408). In turn, networkdevice 300 (which is positioned upstream of SDP 200) may receive theforwarded request via downstream link 318 (step 412). Responsive toreceiving the forwarded request, network device 300 may check hot cache210 for the requested content (step 414). Based on a determination ofwhether the requested content is stored on hot cache 210, network device300 may perform varying functions (decision block 416). For example, ifnetwork device 300 determines that the requested content is stored onhot cache 210 (YES of 416), network device 300 may send data associatedwith the content, via downstream link 318, to SDP 200 (step 418). If, onthe other hand, network device 300 determines that hot cache 210 doesnot include the requested content, network device 300 may check WCC 312for pointers to the content (step 420). More specifically, networkdevice 300 may check whether WCC 312 includes at least one pointerindicating that the requested content is stored on a wide cache of asecond SDP, different from SDP 200, that is also coupled to networkdevice 300.

Based on a determination of whether at least one pointer of WCC 312indicates that the requested content is stored in another wide cache(e.g., of the second SDP), network device 300 may perform varyingfunctions (decision block 422). For example, if network device 300determines, based on checking WCC 312 for a pointer, that the requestedcontent is not stored on the wide cache of any SDP coupled to networkdevice 300 (NO of 422), then network device 300 may retrieve therequested content from a server provider device for an Internet serviceprovider, e.g., by forwarding the request via upstream link 316 (step424).

However, if network device 300 determines, based on checking WCC 312 fora pointer to the requested content, that the requested content is in thewide cache of at least a second SDP (YES of 422), network device 300 mayretrieve the content from the second SDP (step 426). Upon retrieving therequested content (either from the internet service provider or from thesecond SDP), network device 300 may send the requested content, viadownstream link 318, to SDP 200, which sent the original request (step418). In turn, SDP 200 may receive the requested content via opticalfiber link 212 (step 430), and send the received content via coaxiallink 214 to a subscriber device positioned in a customer service network(step 410).

The techniques described in this disclosure may be implemented inhardware or any combination of hardware and software (includingfirmware). Any features described as units, modules, or components maybe implemented together in an integrated logic device or separately asdiscrete but interoperable logic devices. If implemented in hardware,the techniques may be realized in a processor, a circuit, a collectionof logic elements, or any other apparatus that performs the techniquesdescribed herein. If implemented in software, the techniques may berealized at least in part by a non-transitory computer-readable storagemedium comprising instructions that, when executed in a processor, causethe processor to perform one or more of the methods described above. Thenon-transitory computer-readable medium may form part of a computerprogram product, which may include packaging materials. Thenon-transitory computer-readable medium may comprise random accessmemory (RAM) such as synchronous dynamic random access memory (SDRAM),read-only memory (ROM), non-volatile random access memory (NVRAM),electrically erasable programmable read-only memory (EEPROM), FLASHmemory, magnetic or optical data storage media, and the like. Thetechniques additionally, or alternatively, may be realized at least inpart by a computer-readable communication medium that carries orcommunicates code in the form of instructions or data structures andthat can be accessed, read, and/or executed by a computer.

The code may be executed by one or more processors, such as one or moredigital signal processors (DSPs), general purpose microprocessors,application specific integrated circuits (ASICs), field programmablelogic arrays (FPGAs), or other equivalent integrated or discrete logiccircuitry. Accordingly, the term “processor,” as used herein, may referto any of the foregoing structures or any other structure suitable forimplementation of the techniques described herein. Likewise, the term“control unit,” as used herein, may refer to any of the foregoingstructures or any other structure suitable for implementation of thetechniques described herein. In addition, in some aspects, thefunctionality described herein may be provided within dedicated softwareand hardware units configured to perform the techniques of thisdisclosure. Depiction of different features as units is intended tohighlight different functional aspects of the devices illustrated anddoes not necessarily imply that such units must be realized by separatehardware or software components. Rather, functionality associated withone or more units may be integrated within common or separate hardwareor software components.

Various embodiments of the invention have been described. These andother embodiments are within the scope of the following claims.

What is claimed is:
 1. A method comprising: receiving, by a servicedelivery platform and from a subscriber device communicatively coupledto the service delivery platform, a request that identifies digitalcontent, the service delivery platform being positioned between thesubscriber device and a network device such that the service deliveryplatform is positioned upstream of the subscriber device and downstreamof the network device; responsive to receiving the request, determining,by the service delivery platform, whether the digital content is storedon a wide cache of the service delivery platform and incrementing, bythe service delivery platform, an impact rating (IR) of the digitalcontent; and if the digital content is not stored on the wide cache ofthe service delivery platform, forwarding, by the service deliveryplatform, the request to the network device; receiving, by the servicedelivery platform, from the network device, the digital contentidentified by the request, wherein the digital content comprisesreceived digital content, and wherein the received digital contentcomprises at least one of 1) digital content stored on a hot cache ofthe network device, and 2) digital content that is stored on anotherwide cache of another service delivery platform and that is sent fromthe another service delivery platform via the network device;forwarding, by the service delivery platform, the received digitalcontent to the subscriber device; and if the incremented IR of thereceived digital content is greater than a threshold value, storing, bythe service delivery platform, the received digital content to the widecache.
 2. The method of claim 1, wherein the service delivery platformcomprises an optical network unit (ONU).
 3. The method of claim 1,wherein the digital content comprises one or both of video data or audiodata.
 4. The method of claim 1, further comprising: if the receiveddigital content is stored on the wide cache, sending, by the servicedelivery platform, the requested digital content to the subscriberdevice.
 5. The method of claim 1, wherein the digital content comprisesfirst digital content, the method further comprising: receiving, by theservice delivery platform, from the network device, a backup requestthat identifies a second digital content; determining, by the servicedelivery platform, whether the second digital content is stored on thewide cache; and if the second digital content is stored on the widecache, sending, by the service delivery platform, the second digitalcontent to the network device responsive to receiving the backup requestfrom the network device.
 6. The method of claim 1, wherein storing thereceived digital content to the wide cache further comprises: selecting,by the service delivery platform, at least one stored item of digitalcontent that is currently stored on the wide cache; and deleting, by theservice delivery platform, the at least one stored item of digitalcontent that was selected from the wide cache.
 7. The method of claim 6,wherein selecting the at least one stored item of digital contentfurther comprises: selecting, by the service delivery platform, a storeditem of digital content from a plurality of stored items of digitalcontent, wherein the stored item of digital content that was selectedhas a lowest IR of all stored items of the plurality of stored items ofdigital content.
 8. The method of claim 1, further comprising:calculating, by the service delivery platform, the IR of the digitalcontent based at least in part on one or more of: 1) a count of allrequests for the digital content on a current day, 2) a sum of totalhits associated with the digital content within a predetermined timewindow, 3) a size of all content currently stored on the wide cache, or4) a factor to differentiate between two or more different types ofdigital content.
 9. The method of claim 1, wherein storing the receiveddigital content to the wide cache further comprises: comparing, by theservice delivery platform, a size of the received digital content with asize of a competing received digital content, wherein the receiveddigital content and the competing received digital content share anequal IR; and based at least in part on the comparison, selecting, bythe service delivery platform, the received digital content to store tothe wide cache.
 10. A service delivery platform being positioned betweena subscriber device and a network device such that the service deliveryplatform is positioned upstream of the subscriber device and downstreamof the network device, the service delivery platform comprising: adownstream optical network interface; an upstream optical networkinterface a wide cache; and a control unit configured to: receive, viathe downstream optical network interface and from a subscriber devicecommunicatively coupled to the service delivery platform, a request thatidentifies digital content, the service delivery platform beingpositioned between the subscriber device and a network device such thatthe service delivery platform is positioned upstream of the subscriberdevice and downstream of the network device; responsive to receipt ofthe request, determine whether the digital content is stored on a widecache of the service delivery platform and increment an impact rating(IR) of the digital content; and if the digital content is not stored onthe wide cache of the service delivery platform, forward the request tothe network device via the upstream optical network interface; receive,via the upstream optical network interface and from the network device,the digital content identified by the request, wherein the digitalcontent comprises received digital content, and wherein the receiveddigital content comprises at least one of 1) digital content stored on ahot cache of the network device, and 2) digital content that is storedon another wide cache of another service delivery platform and that issent from the another service delivery platform via the network device;forward the received digital content to the subscriber device via thedownstream optical network interface; and if the incremented IR of thereceived digital content is greater than a threshold value, store thereceived digital content to the wide cache.
 11. The service deliveryplatform of claim 10, wherein the digital content comprises one or bothof video data or audio data.
 12. The service delivery platform of claim10, wherein the control unit is further configured to send the requesteddigital content to the subscriber device via the downstream opticalnetwork interface if the received digital content is stored on the widecache.
 13. The service delivery platform of claim 10, wherein thedigital content comprises first digital content, and wherein the controlunit is further configured to: receive, via the upstream optical networkinterface and from the network device, a backup request that identifiesa second digital content; determine whether the second digital contentis stored on the wide cache; and if the second digital content is storedon the wide cache, send the second digital content via the upstreamoptical network interface to the network device, responsive to receiptof the backup request from the network device.
 14. The service deliveryplatform of claim 10, wherein to store the received digital content tothe wide cache, the control unit is configured to: select at least onestored item of digital content that is currently stored on the widecache; and delete the at least one stored item of digital content thatwas selected from the wide cache.
 15. The service delivery platform ofclaim 14, wherein to select the at least one stored item of digitalcontent, the control unit is configured to: select a stored item ofdigital content from a plurality of stored items of digital content,wherein the stored item of digital content that was selected has alowest IR of all stored items of the plurality of stored items ofdigital content.
 16. The service delivery platform of claim 10, whereinthe control unit is further configured to: calculate the IR of thedigital content based at least in part on one or more of: 1) a count ofall requests for the digital content on a current day, 2) a sum of totalhits associated with the digital content within a predetermined timewindow, 3) a size of all content currently stored on the wide cache, or4) a factor to differentiate between two or more different types ofdigital content.
 17. The service delivery platform of claim 10, whereinto store the received digital content to the wide cache, the controlunit is configured to: compare a size of the received digital contentwith a size of a competing received digital content, wherein thereceived digital content and the competing received digital contentshare an equal IR; and select the received digital content to store tothe wide cache based at least in part on the comparison of the size ofthe received digital content with the size of the competing receiveddigital content.
 18. The service delivery platform of claim 17, whereinthe control unit is further configured to determine an available storagecapacity of the wide cache, and wherein, to select the received digitalcontent to store to the wide cache based at least in part on thecomparison of the size of the received digital content with the size ofthe competing received digital content, the control unit is configuredto determine that the size of the received digital content is less thanthe available storage capacity.
 19. The service delivery platform ofclaim 10, wherein the service delivery platform comprises an opticalnetwork unit (ONU).
 20. A computer-readable storage device comprisinginstructions that, when executed, cause one or more programmableprocessors of a service delivery platform to: receive, from a subscriberdevice communicatively coupled to the service delivery platform, arequest that identifies digital content, the service delivery platformbeing positioned between the subscriber device and a network device suchthat the service delivery platform is positioned upstream of thesubscriber device and downstream of the network device; responsive toreceiving the request, determine whether the digital content is storedon a wide cache of the service delivery platform and increment an impactrating (IR) of the digital content; and if the digital content is notstored on the wide cache of the service delivery platform, forward therequest to the network device; receive, from the network device, thedigital content identified by the request, wherein the digital contentcomprises received digital content, and wherein the received digitalcontent comprises at least one of 1) digital content stored on a hotcache of the network device, and 2) digital content that is stored onanother wide cache of another service delivery platform and that is sentfrom the another service delivery platform via the network device;forward the received digital content to the subscriber device; and ifthe incremented IR of the received digital content is greater than athreshold value, store the received digital content to the wide cache.